home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / dviware / dtl / dtl.h < prev    next >
C/C++ Source or Header  |  1995-02-28  |  4KB  |  161 lines

  1. /* dtl.h
  2.    - header for dv2dt.c and dt2dv.c, conversion programs
  3.      for human-readable "DTL" <-> DVI.
  4.    - (ANSI C) version 0.5.3 - 21:56 GMT +11  Tue 28 Feb 1995
  5.    - author: Geoffrey Tobin    G.Tobin@ee.latrobe.edu.au
  6.    - patch:  Michal Tomczak-Jaegermann   ntomczak@vm.ucs.ualberta.ca
  7.    - Reference:  "The DVI Driver Standard, Level 0",
  8.                  by  The TUG DVI Driver Standards Committee.
  9.                  Appendix A, "Device-Independent File Format".
  10. */
  11.  
  12. /* variety of DTL produced */
  13. #define  VARIETY  "sequences-5"
  14.  
  15. /* version of DTL programs */
  16. #define VERSION "0.5.3"
  17.  
  18. /* Version (Traditional or ANSI) of C affects prototype and type definitions */
  19. #ifdef __STDC__
  20. #define __(X) X
  21. typedef void Void;
  22. #define VOID void
  23. #define FILE_BEGIN SEEK_SET
  24. #else  /* not __STDC__ */
  25. #define __(X) ()
  26. typedef int Void;
  27. #define VOID
  28. #define FILE_BEGIN 0
  29. #endif /* __STDC__ */
  30.  
  31. /* types to store 4 byte signed and unsigned integers */
  32. typedef long  S4;
  33. typedef unsigned long  U4;
  34. /* scanf and printf formats to read or write those */
  35. #define SF4  "%ld"
  36. #define UF4  "%lu"
  37. /* 4 byte hexadecimal */
  38. /* #define XF4  "%04lx" */
  39. #define XF4  "%lx"
  40. /* 4 byte octal */
  41. #define OF4  "%lo"
  42.  
  43. /* type for byte count for DVI file */
  44. /* COUNT must be large enough to hold a U4 (unsigned 4 byte) value */
  45. typedef U4  COUNT;
  46.  
  47. /* size of a TeX and DVI word is 32 bits; in some systems a `long int' is needed */
  48. typedef long int word_t;
  49. /* format for a DVI word */
  50. #define WF "%ld"
  51.  
  52. /* string of 8-bit characters for machine: keyboard, screen, memory */
  53.  
  54. #define MAXSTRLEN 80
  55. typedef char String[MAXSTRLEN+1];
  56.  
  57. int debug = 0;  /* normally, debugging is off */
  58.  
  59. /* Is each DTL command parenthesised by a BCOM and an ECOM? */
  60.  
  61. int group = 0;  /* by default, no grouping */
  62.  
  63. /* signals of beginning and end of a command and its arguments */
  64. /* these apply only if group is nonzero */
  65.  
  66. # define  BCOM  "{"
  67. # define  ECOM  "}"
  68.  
  69. # define BCOM_CHAR '{'
  70. # define ECOM_CHAR '}'
  71.  
  72. /* beginning and end of a message string */
  73.  
  74. #define  BMES  "'"
  75. #define  EMES  BMES
  76.  
  77. #define  BMES_CHAR  '\''
  78. #define  EMES_CHAR  BMES_CHAR
  79.  
  80. /* beginning and end of sequence of font characters */
  81.  
  82. #define  BSEQ  "("
  83. #define  ESEQ  ")"
  84.  
  85. #define  BSEQ_CHAR  '('
  86. #define  ESEQ_CHAR  ')'
  87.  
  88. /* escape and quote characters */
  89.  
  90. #define  ESC_CHAR  '\\'
  91. #define  QUOTE_CHAR  '\"'
  92.  
  93. /* command names in DTL */
  94.  
  95. #define  SETCHAR  "\\"
  96. #define  SET      "s"
  97. #define  SET1     "s1"
  98. #define  SET2     "s2"
  99. #define  SET3     "s3"
  100. #define  SET4     "s4"
  101. #define  SETRULE  "sr"
  102. #define  PUT      "p"
  103. #define  PUT1     "p1"
  104. #define  PUT2     "p2"
  105. #define  PUT3     "p3"
  106. #define  PUT4     "p4"
  107. #define  PUTRULE  "pr"
  108. #define  NOP      "nop"
  109. #define  BOP      "bop"
  110. #define  EOP      "eop"
  111. #define  PUSH     "["
  112. #define  POP      "]"
  113. #define  RIGHT    "r"
  114. #define  RIGHT1   "r1"
  115. #define  RIGHT2   "r2"
  116. #define  RIGHT3   "r3"
  117. #define  RIGHT4   "r4"
  118. #define  W        "w"
  119. #define  W0       "w0"
  120. #define  W1       "w1"
  121. #define  W2       "w2"
  122. #define  W3       "w3"
  123. #define  W4       "w4"
  124. #define  X        "x"
  125. #define  X0       "x0"
  126. #define  X1       "x1"
  127. #define  X2       "x2"
  128. #define  X3       "x3"
  129. #define  X4       "x4"
  130. #define  DOWN     "d"
  131. #define  DOWN1    "d1"
  132. #define  DOWN2    "d2"
  133. #define  DOWN3    "d3"
  134. #define  DOWN4    "d4"
  135. #define  Y        "y"
  136. #define  Y0       "y0"
  137. #define  Y1       "y1"
  138. #define  Y2       "y2"
  139. #define  Y3       "y3"
  140. #define  Y4       "y4"
  141. #define  Z        "z"
  142. #define  Z0       "z0"
  143. #define  Z1       "z1"
  144. #define  Z2       "z2"
  145. #define  Z3       "z3"
  146. #define  Z4       "z4"
  147. #define  FONT     "f"
  148. #define  FONT1    "f1"
  149. #define  FONT2    "f2"
  150. #define  FONT3    "f3"
  151. #define  FONT4    "f4"
  152. #define  FONTDEF  "fd"
  153. #define  FONTNUM  "fn"
  154. #define  SPECIAL  "special"
  155. #define  PRE      "pre"
  156. #define  POST     "post"
  157. #define  POSTPOST "post_post"
  158. #define  OPCODE   "opcode"
  159.  
  160. /* end dtl.h */
  161.